/*
 * CLASSE de implementação da INTERFACE VeiculoDAO
 */

package br.com.jkar.dao;

import br.com.jkar.bean.Veiculo;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

/**
 * 
 * @author Kamila Berto <kah.berto@gmail.com>
 */
public class VeiculoDAOImpl implements VeiculoDAO{
    
    Connection conn;
    PreparedStatement pst = null;
    ResultSet rs = null;

    @Override
    public Veiculo salvar(Veiculo veiculo) throws Exception {
        System.out.println("Cadastrando dados no BD...");
        try {
            conn = FabricarConexao.abrirConexao();
            String stmt = "INSERT INTO veiculo (placa, marca, modelo, ano, cor, "
                    + "cliente_pessoa_id) VALUES (?, ?, ?, ?, ?, ?)";
            pst = conn.prepareStatement(stmt, Statement.RETURN_GENERATED_KEYS);
            pst.setString(1, veiculo.getPlaca());
            pst.setString(2, veiculo.getMarca());
            pst.setString(3, veiculo.getModelo());
            pst.setInt(4, veiculo.getAno());
            pst.setString(5, veiculo.getCor());
            pst.setInt(6, veiculo.getCliente().getId());
            pst.executeUpdate();
            rs = pst.getGeneratedKeys();
            rs.next();
            veiculo.setId(rs.getInt(1));
        } catch (Exception e) {
            System.out.println("Erro ao salvar os dados no BD: " + e.getMessage());
            throw new Exception(e.getMessage());
        }finally{
            FabricarConexao.fecharConexao(conn, pst, rs);
        }
        return veiculo;
    }

    @Override
    public Veiculo alterar(Veiculo veiculo) throws Exception {
//        ClienteDAO clienteDAO = new ClienteDAOImpl();
//        clienteDAO.alterar(pessoa.getCliente());
//        try {
//            conn = FabricaConexao.abreConexao();
//            String sql = "UPDATE pessoa SET nome = ?, cpf = ?, rg = ?, email = ?, "
//                    + "telfixo = ?, celular = ? WHERE id  = ?";
//            psmt = conn.prepareStatement(sql);
//            psmt.setString(1, pessoa.getNome());
//            psmt.setString(2, pessoa.getCpf());
//            psmt.setString(3, pessoa.getRg());
//            psmt.setString(4, pessoa.getEmail());
//            psmt.setString(5, pessoa.getTelfixo());
//            psmt.setString(6, pessoa.getCelular());
//            psmt.setInt(7, pessoa.getId());
//            psmt.executeUpdate();
//        } catch (Exception e) {
//            System.out.println("Erro ao alterar dados no BD: " + e.getMessage());
//        }finally{
//            FabricaConexao.fechaConexao(conn, psmt);
//        }
        return veiculo;
    }

    @Override
    public void excluir(Integer id) throws Exception {
    }

    @Override
    public List<Veiculo> listar() throws Exception {
        return null;
    }

    @Override
    public Veiculo procurar(Integer id) throws Exception {
        return null;
    }
}
